package com.edushare.common.vo.auto;

import java.util.Date;
import java.util.List;

import org.apache.cayenne.CayenneDataObject;

import com.edushare.common.vo.CourseCategories;
import com.edushare.common.vo.CourseDeptLink;
import com.edushare.common.vo.CourseInstances;
import com.edushare.common.vo.FilesUploaded;
import com.edushare.common.vo.PrerequisiteLink;
import com.edushare.common.vo.SemesterCourses;
import com.edushare.common.vo.UniversityCourseLinks;

/**
 * Class _Courses was generated by Cayenne.
 * It is probably a good idea to avoid changing this class manually,
 * since it may be overwritten next time code is regenerated.
 * If you need to make any customizations, please use subclass.
 */
public abstract class _Courses extends CayenneDataObject {

    public static final String COURSE_CODE_PROPERTY = "courseCode";
    public static final String COURSE_DESC_PROPERTY = "courseDesc";
    public static final String COURSE_ID_PROPERTY = "courseId";
    public static final String COURSE_NAME_PROPERTY = "courseName";
    public static final String CREATION_TIMESTAMP_PROPERTY = "creationTimestamp";
    public static final String CREDITS_PROPERTY = "credits";
    public static final String LECTURE_HOURS_PROPERTY = "lectureHours";
    public static final String PRACTICAL_HOURS_PROPERTY = "practicalHours";
    public static final String PREREQUISITES_CONDITION_PROPERTY = "prerequisitesCondition";
    public static final String SETTINGS_PROPERTY = "settings";
    public static final String STATUS_PROPERTY = "status";
    public static final String STRENGTH_PROPERTY = "strength";
    public static final String TUTORIAL_HOURS_PROPERTY = "tutorialHours";
    public static final String CATEGORIES_PROPERTY = "categories";
    public static final String COURSE_INSTANCES_PROPERTY = "courseInstances";
    public static final String DEPENDENT_COURSE_LINK_PROPERTY = "dependentCourseLink";
    public static final String DEPT_LINKS_PROPERTY = "deptLinks";
    public static final String IMAGE_FILE_PROPERTY = "imageFile";
    public static final String PREREQUISITE_LINK_PROPERTY = "prerequisiteLink";
    public static final String SEMESTER_COURSES_PROPERTY = "semesterCourses";
    public static final String UNIVERSITIES_PROPERTY = "universities";

    public static final String COURSE_ID_PK_COLUMN = "COURSE_ID";

    public void setCourseCode(String courseCode) {
        writeProperty("courseCode", courseCode);
    }
    public String getCourseCode() {
        return (String)readProperty("courseCode");
    }

    public void setCourseDesc(String courseDesc) {
        writeProperty("courseDesc", courseDesc);
    }
    public String getCourseDesc() {
        return (String)readProperty("courseDesc");
    }

    public void setCourseId(Integer courseId) {
        writeProperty("courseId", courseId);
    }
    public Integer getCourseId() {
        return (Integer)readProperty("courseId");
    }

    public void setCourseName(String courseName) {
        writeProperty("courseName", courseName);
    }
    public String getCourseName() {
        return (String)readProperty("courseName");
    }

    public void setCreationTimestamp(Date creationTimestamp) {
        writeProperty("creationTimestamp", creationTimestamp);
    }
    public Date getCreationTimestamp() {
        return (Date)readProperty("creationTimestamp");
    }

    public void setCredits(Integer credits) {
        writeProperty("credits", credits);
    }
    public Integer getCredits() {
        return (Integer)readProperty("credits");
    }

    public void setLectureHours(Integer lectureHours) {
        writeProperty("lectureHours", lectureHours);
    }
    public Integer getLectureHours() {
        return (Integer)readProperty("lectureHours");
    }

    public void setPracticalHours(Integer practicalHours) {
        writeProperty("practicalHours", practicalHours);
    }
    public Integer getPracticalHours() {
        return (Integer)readProperty("practicalHours");
    }

    public void setPrerequisitesCondition(Integer prerequisitesCondition) {
        writeProperty("prerequisitesCondition", prerequisitesCondition);
    }
    public Integer getPrerequisitesCondition() {
        return (Integer)readProperty("prerequisitesCondition");
    }

    public void setSettings(String settings) {
        writeProperty("settings", settings);
    }
    public String getSettings() {
        return (String)readProperty("settings");
    }

    public void setStatus(Integer status) {
        writeProperty("status", status);
    }
    public Integer getStatus() {
        return (Integer)readProperty("status");
    }

    public void setStrength(Integer strength) {
        writeProperty("strength", strength);
    }
    public Integer getStrength() {
        return (Integer)readProperty("strength");
    }

    public void setTutorialHours(Integer tutorialHours) {
        writeProperty("tutorialHours", tutorialHours);
    }
    public Integer getTutorialHours() {
        return (Integer)readProperty("tutorialHours");
    }

    public void addToCategories(CourseCategories obj) {
        addToManyTarget("categories", obj, true);
    }
    public void removeFromCategories(CourseCategories obj) {
        removeToManyTarget("categories", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<CourseCategories> getCategories() {
        return (List<CourseCategories>)readProperty("categories");
    }


    public void addToCourseInstances(CourseInstances obj) {
        addToManyTarget("courseInstances", obj, true);
    }
    public void removeFromCourseInstances(CourseInstances obj) {
        removeToManyTarget("courseInstances", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<CourseInstances> getCourseInstances() {
        return (List<CourseInstances>)readProperty("courseInstances");
    }


    public void addToDependentCourseLink(PrerequisiteLink obj) {
        addToManyTarget("dependentCourseLink", obj, true);
    }
    public void removeFromDependentCourseLink(PrerequisiteLink obj) {
        removeToManyTarget("dependentCourseLink", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<PrerequisiteLink> getDependentCourseLink() {
        return (List<PrerequisiteLink>)readProperty("dependentCourseLink");
    }


    public void addToDeptLinks(CourseDeptLink obj) {
        addToManyTarget("deptLinks", obj, true);
    }
    public void removeFromDeptLinks(CourseDeptLink obj) {
        removeToManyTarget("deptLinks", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<CourseDeptLink> getDeptLinks() {
        return (List<CourseDeptLink>)readProperty("deptLinks");
    }


    public void setImageFile(FilesUploaded imageFile) {
        setToOneTarget("imageFile", imageFile, true);
    }

    public FilesUploaded getImageFile() {
        return (FilesUploaded)readProperty("imageFile");
    }


    public void addToPrerequisiteLink(PrerequisiteLink obj) {
        addToManyTarget("prerequisiteLink", obj, true);
    }
    public void removeFromPrerequisiteLink(PrerequisiteLink obj) {
        removeToManyTarget("prerequisiteLink", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<PrerequisiteLink> getPrerequisiteLink() {
        return (List<PrerequisiteLink>)readProperty("prerequisiteLink");
    }


    public void addToSemesterCourses(SemesterCourses obj) {
        addToManyTarget("semesterCourses", obj, true);
    }
    public void removeFromSemesterCourses(SemesterCourses obj) {
        removeToManyTarget("semesterCourses", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<SemesterCourses> getSemesterCourses() {
        return (List<SemesterCourses>)readProperty("semesterCourses");
    }


    public void addToUniversities(UniversityCourseLinks obj) {
        addToManyTarget("universities", obj, true);
    }
    public void removeFromUniversities(UniversityCourseLinks obj) {
        removeToManyTarget("universities", obj, true);
    }
    @SuppressWarnings("unchecked")
    public List<UniversityCourseLinks> getUniversities() {
        return (List<UniversityCourseLinks>)readProperty("universities");
    }


}
